// stores/useVoice.js 录音、播放、打断、聊天等类型相关
import { defineStore } from "pinia";
import { ref } from "vue";
const useVoice = defineStore("useVoice", () => {
  //是否已关闭麦克风
  let isCloseMic = ref(false);
  /**
   * 页面录音聊天状态
   * 0 未录音 专用于对讲模式
   * 1 正在输入 录音中
   * 2 输入完成 等智能体回复
   * 3 智能体正在回复 正在播放切片
   * 4 智能体回复完成 切片播放完成
   */
  const recorderStatus = ref("");
  /**
   * 是否中断了播放回复，中断包含：
   *    1.对讲模式下，正在播放回复，用户再次长按发送语音或者重新发送了文字
   *    2.后续待补充...
   */
  const isInterruptPlay = ref(false);

  //是否正在播放
  const isPlaying = ref(false);

  //聊天类型 1对讲 2实时语音
  const chatType = ref(1);

  const resetVoiceStatus = () => {
    recorderStatus.value = 0;
    isInterruptPlay.value = false;
    isPlaying.value = false;
  };

  //静音/解除静音
  const toggleMic = () => {
    isCloseMic.value = !isCloseMic.value;
  };

  return {
    recorderStatus,
    isInterruptPlay,
    isPlaying,
    chatType,
    isCloseMic,
    resetVoiceStatus,
    toggleMic,
  };
});

export default useVoice;
